package au.com.handsunited.dao;

import java.util.List;

import au.com.handsunited.model.User;

/**
 *
 * @author arunda
 * @date 19/12/2006 4:18:32 PM
 */
public interface UserDAO {

	/**
	 *
	 * @param userId
	 * @return
	 */
	User getUser(Long userId);

	/**
	 *
	 * @param user
	 * @return
	 */
	User createUser(User user);

	/**
	 *
	 * @param user
	 * @return
	 */
	User updateUser(User user);

	/**
	 *
	 * @param username
	 * @return
	 */
	User findUserByUsername (String username);

	/**
	 *
	 * @return
	 */
	List<User> getUsers();

	/**
	 * @param firstResult
	 * @param maxResults
	 * @return
	 */
	List<User> getUsersPaginated(int firstResult, int maxResults);

	/**
	 * 
	 * @param firstName
	 * @param lastName
	 * @param emailAddress
	 * @return
	 */
	List<User> searchActiveUsers(String firstName, String lastName, String emailAddress);

}
